
                                   November 2013

                            Thadoss proudly presents
 
                                      Racer

                                Falcon030 version

			    1st at sillyventure 2013



About
-----

Racer is my second game for the Atari Falcon030 computer.

This is a 100% homebrew game.

This is my second big production for my beloved computer (after Beats
of Rage), and I'm happy and proud to share it with all the Falcon 
people who still make the dream a reality.


Requirements
------------

To run this game you need:

- An Atari Falcon030 with at least 4MB of RAM
- At least 15MB of hard disk space
- One or more of the following input devices:
  - a Jagpad
  - A joystick plugged into the port 1
  - The Falcon keyboard
- The game runs on both RGB and VGA screens

Falcon accelerators like the Centurbo CT2 or CT60 have not been tested.
(I don't own one of them), but the game should work.

If you have a 4MB machine, try to free up as much memory as possible.
The game needs a lot of memory due to the backgrounds and cars.


Installation
------------

Just uncompress the zip file in a folder of your harddrive and lauch the
game.


Files content
-------------
RACER030.PRG	: the full 68030 game exe
RACERDSP.PRG	: the 68030+DSP game exe
RACER.DAT	: contains the options preferences and the best times
		  and best scores for each race.
README.TXT	: this file
/DATA		: the datas (images, musics, circuits definitions)
/SYS		: some technical files for the game
/2_VBL.BUG	: double VBL patched exe.
		    - RAC_0302.PRG : the 030 version, with double VBL fix
		    - RAC_DSP2.PRG : the DSP version, with double VBL fix

I've made 2 versions of the game : one 100% coded in pure 030 asm and one
which use the DSP for the road computing.

The DSP version should be a bit faster but some players may encounter some
problems with it.
The 030 version should be a bit slower (not that much). This version works
better with HATARI (the sound is cleaner, and no lag). It should be used
also with accelerated cards.

If you encounter a problem of double VBL bug with your monitor or a video
projector, you can try the 2 programs in the directory /2_VBL.BUG.
You just have to copy the files in the main directory of the game.
They should be used only in this case.

RACER.DAT contains all the best scores and times of each level. If you want
to reset these values, you can just delete this file. The game will automa-
tically create a new one with the defaults values. Deleting the file will
reset your options preferences to the defaults values. You can select them
again later in the main menu.



Gameplay
--------

Just take pleasure to drive fast on the roads, avoid the other drivers and
make the best time and/or the best score on each race.

You can drive on 4 different circuits. Each one is specific.

Circuit 1 : The race
   This circuit is a race against 7 opponents.
   Try to be the first one on the finish line.
 
Circuit 2 : The casino
   On this circuit, you'll drive wrong way.
   Try to finish the race and don't bump into the other cars.

Circuit 3 : The dark castle
   This circuit is a race against 7 opponents.
   Try to be the first one on the finish line.

Circuit 4 : Africa
   This circuit is a "outrun" like race.
   Try to finish the race without bumping into the opponents.



Controls (keyboard keys)
------------------------
UP          : up arrow
DOWN        : down arrow
LEFT        : left arrow
RIGHT       : right arrow
FIRE BUTTON : left shift
BONUS ACTION: right shift or alternate
GEAR UP     : up arrow + left shift
GEAR DOWN   : down arrow + left shift
PAUSE       : p key
EXIT        : esc key


Controls (joystick)
-------------------
UP          : up 
DOWN        : down
LEFT        : left
RIGHT       : right
FIRE BUTTON : fire
BONUS ACTION: fire (only fire)
GEAR UP     : up + fire
GEAR DOWN   : down + fire
PAUSE       : p key
EXIT        : esc key


Controls (jagpag)
-----------------
UP          : up 
DOWN        : down
LEFT        : left
RIGHT       : right
FIRE BUTTON : fire A or fire B
BONUS ACTION: fire C
GEAR UP     : up + fire A or fire B
GEAR DOWN   : down + fire A or fire B
PAUSE       : PAUSE key
EXIT        : esc key


Bonuses list
------------
Bell           : all the visible opponents are ejected to the sides of the road
Bomb           : the closest opponent's speed is reduced to zero
Boxing glove   : bump into a car ejects the other car
Crystal bowl   : teleport the player to 200 meters 
Falling star   : freeze the time counter for 10 seconds
Maxibomb       : all the visible opponent's speed is reduced to zero
Missile        : the player max speed increase to 500 km/h during 10 seconds
Horn           : the closest opponent is ejected to the side of the road
Rainbow        : invert the driver's left/right commands during 5 seconds
Shoes          : the player max speed increase to 400 km/h during 10 seconds
remote control : freeze the time counter for 5 seconds


Some bonuses are automatic ; some others have to be triggered to be activated.
Some bonuses are better to be used near the opponents, whereas some other
should be used far from the oponents. You'll have to learn how to use them.
Rainbow is the only malus of the game.
The boxing glove can't be activated. It will trigger when you bump into a car.
It's better to use it in a straight road and avoid it in a curve. 



Background informations
-----------------------

I've written all the code in pure 68030 assembler and DSP asm. 
It took me 1 year to complete the game.

- All the sprites are hard coded in assembler, using the sprite 
  compressor I made for beats of rage.
- 90% pure 68030 code
- 10% DSP asm code. I've hacked the dspmod player to be able to add the
  road computing and 3D->2D projection code.
- All developped with Hatari under Linux


My aim was to :
- fit the game in a standard 4 meg Falcon,
- keep a 320*240 true color resolution for both VGA and RGB
- have a game that run as fast as a standard falcon can do
- make a new and never seen game on Falcon
- keep the depth of the road, objects and other cars as far as possible.
  Have a closer look at how far you can see details on each level.
  I don't think there's already been such a depth in a racing game on
  old computers.

The game contains 4 different tracks and 39 different cars.
Each track has it's own textures, sprites and music.

The game includes an internal clocktick to avoid slowness. 
The rendering is done with 3 screen bufers (without VBL synchro).

The roads are precomputed with 4 tables :
- a x table based on a spleen curve
- a height table also based on a spleen curve
- a texture table who indicates which texture to display on each tile
- a sprites table for the objects around the track

There's also a car table for the cars of the level.

The mapping engine is based on the addx.l instruction.
here is the heart of the textured road display engine :

.loop_draw_road:	move.l		(a5,d6.w*2),(a6)+
			addx.l		d7,d6
			move.l		(a5,d6.w*2),(a6)+
			addx.l		d7,d6
			move.l		(a5,d6.w*2),(a6)+
			addx.l		d7,d6
			move.l		(a5,d6.w*2),(a6)+
			addx.l		d7,d6
			dbf		d2,.loop_draw_road
			
I've found a nice optimisation by moving the pixels 2 by 2 with a move.l
For this, you have to adapt the value of the addx (d7 value).
This allow to win 2 VBL on the standard Falcon for the road rendering and
it doesn't kill the quality of the rendering.

The rendering allows 2 modes : flat and textured.
The flat engine is 1 VBL less than the textured engine.
I've included it for the nostalgics of this kind of road rendering.



Graphical Ressources of the game
--------------------------------

All the pictures of the game were found via google image.
I've reworked them all under "the gimp" to fit my needs.
Sometimes, I had to modify these pictures.

When a picture is finished, I export it in TGA, no compression.
Then, I convert it with "Rainbow multimedia" under Falcon by saving
it in Falcon mode true color picture.
Then, I rework the binary with my own programs (optimisations
and assembler convertors).

The bonuses pictures are taken from "Sonic and Sega all star racing".



Musical Ressources of the game
------------------------------

The modules are issued from different demos and games.
I've downloaded them from the web via different sources.

night blues		: 4 Channels, 42 Patterns, 31 Samples 
			  by Patryk Gegniewicz (Poland)

banana split		: 4 Channels, 49 Patterns, 31 Samples
			  by dizzy / cncd '93 (finland)

## FEELING ##		: 4 Channels, 59 Patterns, 31 Samples
			  by XTD / MYSTIC

melon			: 4 Channels, 64 Patterns, 31 Samples
			  by #Audiomonster/Melon
	  
JazzFunk		: 4 Channels, 43 Patterns, 31 Samples
			  by jazzfunk ???

child's philozophy	: 4 Channels, 47 Patterns, 31 Samples
			  by dan / picco (1994)


			  
The sounds
----------

The sounds are all downloaded from the web. They're all free sounds.

During the game, you'll hear some stereophonic swoosh when the car
is close to an object. I wanted this to reinforce the reality for
the player.



Credits
-------

Falcon code and design: Laurent Sallafranque / Thadoss / Dune
Init routs from Dead Hackers Society Falcon Demosystem v15
Joystick/keyboard routine by Nyh/Hans Wessels
DspMod by Bitmaster / TCE (hacked by myself)
video save/restore: Aura & Mugwumps
Double VBL bug in VGA: Zerkman / Sector One
Joypad routine: Simon Sunnyboy

All the pictures and musics belong to their respective creators. 
If someone doesn't want his work to appear in my game, just mail me 
and I'll remove it.


Thanks and greetings
--------------------

Thanks a lot to the author of the pictures, sounds and music I use
in the game.

I want to thank all the Atari communauty for all the fabulous piece of
software I saw during the last 20 years.

This game is my little contribution to the atari Falcon world.

Special thanks to goes to:
- Chuck and MIC from Dune
- Zerkman, Ukko, Tomy, _Orion,
- Grey for the Sillyventures (hey Grey, I always have a good time in Gdansk)
- All the people I met at SillyVenture (guys, you are so cool !!!)
- all the members of the atari crews 
- All the members of the Hatari development team, especially Nicolas,
  Thomas and Eero


Future enhancements
-------------------

The engine is robust enough to use it as a basis for more games.
Maybe ... ;)


Version history
---------------

0.1 - Nov-12ccc : Initial release
0.2 - mars 2013 : first road engine
0.3 - july 2013 : sprites, other cars
0.4 - oct. 2013 : first opponents movements, finition of the game, 
                  hack of the dspmod player
1.0 - nov. 2013 : presentation of the game at Sillyventure 2013


If you find a bug
-----------------

If you find a bug while playing, just send me a mail with the following
informations:
- the race name
- the position of the car on the track (beginning of the track, middle, end)
- at which lap does the bug appear ?
- the time left, the gear position, the number of laps, ...
- how many cars were there on the screen ? (1, more)
- was there something special (a bonus, a crash, ...)

The more precise you are, the best I can reproduce and fix the problem.
If you can do a photo or a snapshot of the problem, it's better.


Contact
-------

laurent.sallafranque@free.fr

Stay (H)atari forever ;-)
